package team.southcat.wsyygh.model.pojo.order;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import team.southcat.wsyygh.model.pojo.base.BaseEntity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author QiuSiYi
 * @since 2023-05-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("wsyygh_order.order")
public class Order implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     * 编号
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long userId;

    /**
     * 订单交易号
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long outTradeNo;

    /**
     * 医院id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long hospitalId;//

    /**
     * 医院名称
     */
    private String hospitalName;//

    /**
     * 科室id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long departmentId;//

    /**
     * 科室名称
     */
    private String departmentName;//

    /**
     * 医生职称
     */
    private String title;//

    /**
     * 排班编号（医院自己的排班主键）
     */
    private Long scheduleId;//

    /**
     * 安排日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date workDate;//

    /**
     * 安排时间（0：上午 1：下午）
     */
    private Integer workTime;//

    /**
     * 就诊人id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long patientId;

    /**
     * 就诊人名称
     */
    private String patientName;

    /**
     * 就诊人手机
     */
    private String patientPhone;

    /**
     * 预约记录唯一标识（医院预约记录主键）
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long hosRecordId;

    /**
     * 预约号序
     */
    private Integer bookingNumber;

    /**
     * 建议取号时间
     */
    private String fetchTime;

    /**
     * 取号地点
     */
    private String fetchAddress;

    /**
     * 医事服务费
     */
    private BigDecimal amount;//

    /**
     * 退号时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date quitTime;//

    /**
     * 订单状态
     * UNPAID(0,"预约成功，待支付"),
     * PAID(1,"已支付" ),
     * ET_NUMBER(2,"已取号" ),
     * ANCLE(-1,"取消预约"),
     */
    private Integer status;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 逻辑删除(1:已删除，0:未删除)
     */
    @TableLogic
    private Integer isDeleted;


}
